Flash Solid State Devices (SSD) differ from traditional rotating disk drives in a number of aspects. Flash SSD devices have certain undesirable aspects. In particular, flash SSD devices suffer from poor random write performance that commonly degrades over time. Because flash media has a limited number of write cycles (a physical limitation of the storage material that eventually causes the device to “wear out”), write performance is also unpredictable.
Internally, the flash SSD periodically rebalances the written sections of the media in a process called “wear leveling”. This process assures that the storage material is used evenly thus extending the viable life of the device. However, the wear leveling prevents a user of the storage system from anticipating, or definitively knowing, when and for how long such background operations may occur (lack of transparency). Another example of a rebalancing operation is the periodic defragmentation caused by random nature of the user writes over the flash media address space.
For example, the user cannot access data in the flash SSD while these wear leveling or defragmentation operations are being performed and the flash SSD devices do not provide prior notification of when these background operations are going to occur. This prevents applications from anticipating the storage non-availability and scheduling other tasks during the flash SSD rebalancing operations. As a result, the relatively slow and inconsistent write times of the flash devices create bottlenecks for the relatively faster read operations. Vendors typically refer to all background operations as “garbage collection” without specifying the type, duration or frequency of the underlying events.